package com.hcc.repository.extension.listener;

import com.hcc.repository.annotation.PropSetListener;

/**
 * 实体属性赋值监听器
 *
 * @author hushengjun
 * @date 2023/8/9
 */
@SuppressWarnings("unchecked")
public interface RepoEntityPropSetListener<T> extends PropSetListener {

    @Override
    default Object onPropSet(Object entity, Object value, String propName, String columnName) {
        // 属性赋值前方法
        this.beforePropSet((T) entity, propName, value);

        return value;
    }

    /**
     * 属性赋值前方法
     * @param entity
     * @param propName
     * @param propVal
     */
    void beforePropSet(T entity, String propName, Object propVal);

}
